home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
011-020
/
amok19
/
trackdisksupport
/
trackdemo.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
3KB
|
102 lines
(**********************************************************************
:Program. TrackDemo.mod
:Contents. Test and demo module for "TrackDiskSupport"
:Author. Fridtjof Siebert [fbs]
:Author. Nicolas Benezan [bne]
:Address. [bne] Postwiesenstr. 2, D7000 Stuttgart 60
:Phone. [bne] 711/333679
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga A+L V3.2d
:Imports. TrackDiskSupport2.0 [fbs],[bne]
:History. V1.0 [fbs] ?.Dez.1988
:History. V2.0 [bne] 13.May.1989
**********************************************************************)
MODULE TrackDemo;
FROM Arts IMPORT BreakPoint;
FROM Exec IMPORT Byte;
FROM TrackDisk IMPORT badDriveType;
FROM InOut IMPORT WriteString, WriteLn, WriteInt, Write,
ReadString, WriteHex;
FROM MemSystem IMPORT NoCareAllocMem, Deallocate;
FROM SYSTEM IMPORT ADR, CAST;
FROM TrackDiskSupport IMPORT OpenDiskDevice, CloseDiskDevice, GetDiskChange,
ChangeState, ProtStatus, Motor, ReadBlock,
GetDriveType, GetNumTracks, DiskUnit,
DeviceInfo, GetDeviceInfo;
VAR
DevName: ARRAY [0..7] OF CHAR;
Unit: DiskUnit;
Error: Byte;
Buffer: POINTER TO ARRAY [0..511] OF CHAR;
PROCEDURE WriteDiskInfo;
VAR
Info:DeviceInfo;
BEGIN
GetDeviceInfo(Unit,Info);
WITH Info DO
WriteString("DeviceName: "); WriteString(devName); WriteLn;
WriteString("Unit: "); WriteInt(devUnit,1); WriteLn;
WriteString("Flags: "); WriteHex(CAST(LONGINT,devFlags),2); WriteLn;
WriteString("BlockSize: "); WriteInt(blockLen,1); WriteLn;
WriteString("TrackSize: "); WriteInt(trackLen,1); WriteLn;
WriteString("CylindSize: "); WriteInt(cylinderLen,1); WriteLn;
WriteString("Blocks: "); WriteInt(numBlocks,1); WriteLn;
END;
END WriteDiskInfo;
BEGIN
NoCareAllocMem(Buffer,SIZE(Buffer^),TRUE);
LOOP
WriteString('Device-Namen eingeben (zB. "DF0"): ');
ReadString(DevName);
IF DevName[0]=CHR(0) THEN
EXIT
END;
Error:= OpenDiskDevice(DevName,Unit);
IF Error=badDriveType THEN
WriteString(" not connected");
WriteLn;
ELSIF Error#0 THEN
WriteString(" Error:"); WriteInt(Error,4);
WriteLn;
ELSE
WriteString(" ok");
WriteLn;
WriteDiskInfo;
WriteString(" DiskChangeCount:");
WriteInt(GetDiskChange(Unit),5);
WriteLn;
IF ChangeState(Unit) THEN
WriteString(" Disk in Drive");
ELSE
WriteString(" No Disk in Drive");
END;
WriteLn;
IF ProtStatus(Unit) THEN
WriteString(" Write enabled");
ELSE
WriteString(" Write protected");
END;
WriteLn;
Error:= ReadBlock(Unit,0,1,Buffer,GetDiskChange(Unit));
IF Error#0 THEN
WriteString("Couldn't read block! Error: "); WriteInt(Error,4);
ELSE
WriteString(" DiskID: ");
Write(Buffer^[0]); Write(Buffer^[1]);
Write(Buffer^[2]); Write(Buffer^[3]);
END;
WriteLn;
IF Motor(Unit,FALSE) THEN END;
CloseDiskDevice(Unit);
END; (* IF OpenTrackDisk()#0 THEN ELSE *)
END; (* LOOP *)
Deallocate(Buffer);
END TrackDemo.